const obj = {
  relation: "and",
  conditions: [
    {
      sort: 1,
      relation: "and",
      conditions: [],
      level: 1,
    },
  ],
  filters: [],
  sort: 0,
  level: 1,
};

const obj2 = {
  relation: "and",
  conditions: [],
  filters: [
    {
      relation: "and",
      conditions: [
        {
          field: "code",
          function: "equal",
          params: ["0"],
          sort: 1,
          level: 1,
        },
      ],
      filters: [],
      filterSort: 2,
      level: 1,
    },
  ],
  filterSort: 0,
  level: 1,
};

const obj3 = {
  relation: "and",
  conditions: [],
  filters: [],
  sort: 0,
  level: 1,
};

const obj4 = {
    "relation": "and",
    "conditions": [
        {
            "field": "data.outputs.$item[*].class",
            "function": "notEqual",
            "params": [
                "person"
            ],
            "sort": 1,
            "level": 1
        }
    ],
    "filters": [],
    "filterSort": 0,
    "level": 1
}


function isEmptyCondition(data, isEmpty = false) {
  if (data.filters?.length) {
    for (let i = 0; i < data.filters.length; i++) {
      const con = data.filters[i];
      if (!isEmpty) {
        // 如果true 说明是有值的
        isEmpty = isEmptyCondition(con, isEmpty);
      }
    }
  }

  if (data.conditions?.length) {
    for (let i = 0; i < data.conditions.length; i++) {
      const con = data.conditions[i];
      if (!isEmpty) {
        // 如果true 说明是有值的
        isEmpty = isEmptyCondition(con, isEmpty);
      }
    }
  }

  if (!data.filters && !data.conditions) {
    isEmpty = true;// 存在条件，而不是空条件
  }

  return isEmpty;
}

// function isEmptyCondition(data) {
//   if (data.filters?.length || data.conditions?.length) {
//     return false;
//   }

//   for (const key in data) {
//     if (typeof data[key] === "object" && data[key] !== null) {
//       if (!isEmptyCondition(data[key])) {
//         return false;
//       }
//     }
//   }

//   return true;
// }

// function isEmptyCondition(data) {
//   if (
//     (!data.conditions ||
//     data.conditions?.length) ||
//     (!data.filters ||
//     data.filters?.length)
//   ) {
//     return false;
//   }

//   if (Array.isArray(data.conditions) || Array.isArray(data.filters)) {
//     for (let i = 0; i < data.conditions.length; i++) {
//       if (!isEmptyCondition(data.conditions[i])) {
//         return true;
//       }
//     }

//     for (let i = 0; i < data.filters.length; i++) {
//       if (!isEmptyCondition(data.filters[i])) {
//         return true;
//       }
//     }
//   }

//   return false;
// }

// function isEmptyCondition(data) {
//   if ((data.filters == null || data.filters?.length) || (data.conditions == null || !data.conditions?.length)) {
//       return false;
//   }

//   if (data.filters?.length) {
//       for (let i = 0; i < data.filters.length; i++) {
//           const con = data.filters[i];
//           if (!isEmptyCondition(con)) {
//               return true;
//           }
//       }
//   }

//   if (data.conditions?.length) {
//       for (let i = 0; i < data.conditions.length; i++) {
//           const con = data.conditions[i];
//           if (!isEmptyCondition(con)) {
//               return true;
//           }
//       }
//   }

//   return false; // 修改此处，当没有条件或过滤器时返回 true
// }

console.log("结果", isEmptyCondition(obj)); // false
console.log("结果2", isEmptyCondition(obj2)); // true
console.log("结果3", isEmptyCondition(obj3)); // false
console.log("结果4", isEmptyCondition(obj4)); // true